package com.ljj;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
 * @author LJJ
 * @create 2020-07-11
 */
public class mybatisplus {

        public static void main(String[] args) {
            // 代码生成器
            AutoGenerator mpg = new AutoGenerator();

            // 全局配置
            GlobalConfig gc = new GlobalConfig();
            String projectPath = System.getProperty("user.dir");
            gc.setOutputDir(projectPath +"/src/main/java");
            gc.setAuthor("LJJ");
            gc.setOpen(false);//生成完之后是否打开Windows文件夹
            gc.setFileOverride(false);//是否覆盖原来的  默认false
            gc.setDateType(DateType.ONLY_DATE);//设置date类型
            gc.setIdType(IdType.AUTO);//设置id类型
            gc.setServiceName("%sService");//去掉Service的I前缀
            mpg.setGlobalConfig(gc);

            //设置数据源
            DataSourceConfig ds= new DataSourceConfig();
            ds.setDriverName("com.mysql.cj.jdbc.Driver");
            ds.setUrl("jdbc:mysql://localhost:3306/exam?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=true");
            ds.setUsername("root");
            ds.setPassword("");
            ds.setDbType(DbType.MYSQL);//设置类型
            mpg.setDataSource(ds);

            //包的设置
            PackageConfig packageConfig = new PackageConfig();
            packageConfig.setParent("com.lzh");
            packageConfig.setController("controller");
            packageConfig.setService("service");
            packageConfig.setEntity("pojo");
            packageConfig.setMapper("mapper");
            mpg.setPackageInfo(packageConfig);

            // 策略配置
            StrategyConfig strategy = new StrategyConfig();
//            strategy.setInclude(("student,college,exam,c_e").split(","));//设置要映射的表
            strategy.setInclude("score");//设置要映射的表
            strategy.setNaming(NamingStrategy.underline_to_camel);//设置包的命名规则，采用驼峰命名
            strategy.setColumnNaming(NamingStrategy.underline_to_camel);//设置表列的命名规则，采用驼峰命名
            strategy.setEntityLombokModel(true);//设置lombok
            strategy.setRestControllerStyle(true);//设置restful的驼峰命名格式
            strategy.setControllerMappingHyphenStyle(true);//localhost:8080://hello_id_2
            mpg.setStrategy(strategy);
//执行
            mpg.execute();


        }

}
